package com.waves.chat.domain.vo;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Description: 消息
 * Author: dlw
 * Date: 2024-03-23
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ChatMessageVO {

    /**
     * 发送者信息
     */
    private UserInfo fromUser;
    /**
     * 消息详情
     */
    private Message message;

    @Data
    public static class UserInfo {
        /**
         * 用户id
         */
        private Long uid;
    }

    @Data
    public static class Message {
        /**
         * 消息id
         */
        private Long id;
        /**
         * 房间id
         */
        private Long roomId;
        /**
         * 消息发送时间
         */
        private Long sendTime;
        /**
         * 消息类型 1正常文本 2.撤回消息
         */
        private Integer type;
        /**
         * 消息内容不同的消息类型，内容体不同
         */
        private Object body;
        /**
         * 消息标记
         */
        private MessageMark messageMark;
    }

    @Data
    public static class MessageMark {
        /**
         * 点赞数
         */
        private Integer likeCount;
        /**
         * 该用户是否已经点赞 0否 1是
         */
        private Integer userLike;
        /**
         * 举报数
         */
        private Integer dislikeCount;
        /**
         * 该用户是否已经举报 0否 1是
         */
        private Integer userDislike;
    }
}
